//package ljh;
//
//import javax.swing.tree.TreeNode;
//
///**
// * xxx
// *
// * @author sdm
// * @version 1.0
// * @date 2023/5/9 17:21
// */
//public class test {
//
//
//
//}
//
//
//    AVLTree adjust(AVLTree T){ //删除节点后，需要判断是否仍平衡，如果不平衡，则需要调整
//        if(T == null){
//            return null;
//        }
//        if(Height(T.getLeft()) - Height(T.getRight()) == 2){ //沿着高度大的那条路径判断
//            if(Height(T->lchild->lchild) >= Height(T->lchild->rchild)){
//                T = LL_Rotation(T);
//            }
//            else{
//                T = LR_Rotation(T);
//            }
//        }
//        if(Height(T->rchild) - Height(T->lchild) == 2){ //沿着高度大的那条路径判断
//            if(Height(T->rchild->rchild) >= Height(T->rchild->lchild)){
//                T = RR_Rotation(T)；
//            }
//            else{
//                T = RL_Rotation(T);
//            }
//        }
//        updateHeight(T);
//        return T;
//    }
//
//    AVLTree Delete(AVLTree T , int x){
//        if(T == NULL){
//            return NULL;
//        }
//        if(T->data == x){ //如果找到待删除节点
//            if(T->rchild == NULL){ //如果该节点的右孩子为NULL，那么直接将其删除
//                AVLTree temp = T;
//                T = T->lchild;
//                delete temp;
//            }
//            else{ //否则，将其右子树的最左孩子作为这个节点，并且递归删除这个节点的值
//                AVLTree temp;
//                temp = T->rchild;
//                while(temp->lchild){
//                    temp = temp->lchild;
//                }
//                T->data = temp->data;
//                T->rchild = Delete(T->rchild , T->data);
//                updateHeight(T);
//            }
//            return T;
//        }
//        if(T->data > x){ //调整删除节点后可能涉及的节点
//            T->lchild = Delete(T->lchild , x);
//        }
//        if(T->data < x){
//            T->rchild = Delete(T->rchild , x);
//        }
//        updateHeight(T);
//        T = adjust(T);
//        return T;
//    }
//
//
//    /**
//     * 求树的最大深度
//     *
//     * @param root
//     * @param deep
//     * @return
//     */
//    private static int maxDeep(AVLTree root, int deep) {
//        if (root == null){
//            return deep;
//        }
//        return Math.max(maxDeep(root.getLeft(),deep+1)), maxDeep(rootgetRight(), deep: deep + 1));
//    }
